/**
 * Beschreiben Sie hier die Klasse Quadr.
 * 
 * @author Andreas Schreiner
 * @version 1
 */
public class Quadr
{
    static double QuadrA; 
    static double QuadrB;
    static double QuadrC;
    static String Ausgabe = null;
   



    /**
     * Methode QuadratischeFunct
     * Diese Methode überprüft eine Quadratische Funktion auf die Art ihrer Nullstellen.
     * Mögliche Nullstllenarten sind 
     * 1. Doppelte Nullstelle
     * 2. 2 Reele Nullstellen
     * 3. 2 Komplexe Nullstllen
     */
    public static String QuadratischeFunct(){
        assert QuadrA != 0;
        double QuadrEa = 0;
        double QuadrEb = 0;
        double wurzel;
        int unterscheidung = 0;
        double PotB = Math.pow(QuadrB, 2);
        double QuadrD = (PotB-4*QuadrA*QuadrC);
        if (QuadrD == 0){
            unterscheidung = 1;
            wurzel = Math.sqrt((PotB -4*QuadrA*QuadrC));
            QuadrEa = (-QuadrB + wurzel)/ 2*QuadrA;
            QuadrEa = Math.round((QuadrEa*100000000))/100000000;

        }
        else if(QuadrD > 0){
            unterscheidung = 2;
            wurzel = Math.sqrt((PotB-4*QuadrA*QuadrC));
            QuadrEa = (-QuadrB + wurzel)/ (2 * QuadrA);
            QuadrEb = (-QuadrB - wurzel)/ (2 * QuadrA);
            QuadrEa = Math.round((QuadrEa*100000000))/100000000;
            QuadrEb = Math.round((QuadrEb*100000000))/100000000;
        }
        else if(QuadrD < 0){
            unterscheidung = 3;
        }

        java.lang.Math.round(QuadrD);
        switch (unterscheidung){
            case 1: 
            Ausgabe = ( QuadrEa + "  Ist eine doppelte Nullstelle");
            //Ausgabe = ("Nullstellen:\n" + QuadrEa + '\n'  + QuadrEb );
            break;
            case 2:
            Ausgabe = ("Nullstellen:  " +  QuadrEa + "  und  "  + QuadrEb );
            break;
            case 3:
            Ausgabe = (" Die Funktion besitzt keine reele Nullstellen");
            break;
        }
        return (Ausgabe);
    }
}
